

#ifndef GISERPDAO_INTERFACE_H
#define GISERPDAO_INTERFACE_H

#include <stdint.h>
#include <string>
#include "app_platform/cntl_info.h"

#include "erp/gis/ddo/shiptypearealocusdo_gis.h"	
#include <vector>	
#include "erp/gis/ddo/shiptypearealocusdolist_gis.h"	


namespace erp
{
namespace gis
{
namespace dao
{

	/// 同步调用接口
	class IGisErpDao	{
	public:
		virtual ~IGisErpDao() {}

	public:

		/**
		 *
	 	 * 获取覆盖轨迹列表 
		 *
		 *@param String machineKey: 机器码，必填，对应网站cookie中的visitkey，若无则填随机值 				
		 *@param String source: 调用来源文件名称，必填 				
		 *@param uint32_t sceneId: 场景id，必填（目前填0即可） 				
		 *@param uint32_t shipType: 配送方式 				
		 *@param uint32_t destGbId: 目标地址国标ID(目前省或者市) 				
		 *@param String inReserve: 请求保留字段 				
		 *@param ShipTypeAreaLocusDoList shipTypeAreaLocusDoList: 覆盖轨迹列表 		
		 *@param String errMsg: 错误信息 		
		 *@param String outReserve: 请求保留字段 		
		 *
		 *@return  uint32_t : 0(成功) 其它失败
 	     *
		 */
	    virtual uint32_t GetMapCoverLocusList(
				const CCntlInfo& rCntlInfo,

				const std::string& machineKey,
				const std::string& source,
				uint32_t sceneId,
				uint32_t shipType,
				uint32_t destGbId,
				const std::string& inReserve,
				erp::gis::ddo::CShipTypeAreaLocusDoList& shipTypeAreaLocusDoList,
				std::string& errMsg,
				std::string& outReserve
	    	) = 0;

		/**
		 *
	 	 * 同步配送区域轨迹记录 
		 *
		 *@param String machineKey: 机器码，必填，对应网站cookie中的visitkey，若无则填随机值 				
		 *@param String source: 调用来源文件名称，必填 				
		 *@param uint32_t sceneId: 场景id，必填（目前填0即可） 				
		 *@param ShipTypeAreaLocusDo shipTypeAreaLocusDo: 配送区域轨迹DO 				
		 *@param String inReserve: 请求保留字段 				
		 *@param String errMsg: 错误信息 		
		 *@param String outReserve: 请求保留字段 		
		 *
		 *@return  uint32_t : 0(成功) 其它失败
 	     *
		 */
	    virtual uint32_t ShipTypeAreaLocusRowSync(
				const CCntlInfo& rCntlInfo,

				const std::string& machineKey,
				const std::string& source,
				uint32_t sceneId,
				const erp::gis::ddo::CShipTypeAreaLocusDo& shipTypeAreaLocusDo,
				const std::string& inReserve,
				std::string& errMsg,
				std::string& outReserve
	    	) = 0;
	};

	///异步调用接口
	class IGisErpDaoAsyc
	{
	public:
		virtual ~IGisErpDaoAsyc() {}
	public:
		virtual uint32_t SendGetMapCoverLocusList(
				const CCntlInfo& rCntlInfo,

				const std::string& machineKey,
				const std::string& source,
				uint32_t sceneId,
				uint32_t shipType,
				uint32_t destGbId,
				const std::string& inReserve
				) = 0;
		virtual uint32_t RecvGetMapCoverLocusList(
				const CCntlInfo& rCntlInfo,

				erp::gis::ddo::CShipTypeAreaLocusDoList& shipTypeAreaLocusDoList,
				std::string& errMsg,
				std::string& outReserve
				) = 0;
		virtual uint32_t SendShipTypeAreaLocusRowSync(
				const CCntlInfo& rCntlInfo,

				const std::string& machineKey,
				const std::string& source,
				uint32_t sceneId,
				const erp::gis::ddo::CShipTypeAreaLocusDo& shipTypeAreaLocusDo,
				const std::string& inReserve
				) = 0;
		virtual uint32_t RecvShipTypeAreaLocusRowSync(
				const CCntlInfo& rCntlInfo,

				std::string& errMsg,
				std::string& outReserve
				) = 0;
	};
	
	
}
}
}

#endif /*GISERPDAO_INTERFACE_H*/
